Class RedbProjectedQueryable<TProps, TResult>
Implementation of LINQ query projections in REDB with filtering and sorting support
⭐ OPTIMIZED: Uses ProjectionFieldExtractor to load only required fields
public class RedbProjectedQueryable<TProps, TResult> : IRedbProjectedQueryable<TResult> where TProps : class, new()
Inheritance
Implements
Properties
ProjectedFieldPaths
⭐ Text field paths for SQL function search_objects_with_projection_by_paths
public List<string>? ProjectedFieldPaths { get; }
ProjectedStructureIds
⭐ Extracted structure_ids for optimization (for provider access)
public HashSet<long>? ProjectedStructureIds { get; }
Projection
⭐ Projection expression (for provider access)
public Expression<Func<RedbObject<TProps>, TResult>> Projection { get; }
Methods
GetProjectionInfoAsync()
Get projection info: SQL function and structure_ids that will be loaded.
public Task<string> GetProjectionInfoAsync()
OrderBy<TKey>(Expression<Func<TResult, TKey>>)
Sort projected results.
public IRedbProjectedQueryable<TResult> OrderBy<TKey>(Expression<Func<TResult, TKey>> keySelector)
OrderByDescending<TKey>(Expression<Func<TResult, TKey>>)
Sort projected results descending.
public IRedbProjectedQueryable<TResult> OrderByDescending<TKey>(Expression<Func<TResult, TKey>> keySelector)
Where(Expression<Func<TResult, bool>>)
Additional filtering of projected results.
public IRedbProjectedQueryable<TResult> Where(Expression<Func<TResult, bool>> predicate)
Constructors
RedbProjectedQueryable(IRedbQueryable<TProps>, Expression<Func<RedbObject<TProps>, TResult>>, IRedbQueryProvider, long)
⭐ Constructor with provider for optimized loading